
/*
    Hyper-V hypercall codes
    See Hypervisor Top Level Functional Specification v5.0
*/
#define HvSwitchVirtualAddressSpace             0x0001  // Any
#define HvFlushVirtualAddressSpace              0x0002  // Any
#define HvFlushVirtualAddressList               0x0003  // Any
#define HvGetLogicalProcessorRunTime            0x0004  // Any
#define HvNotifyLongSpinWait                    0x0008  // Any
#define HvCallSendSyntheticClusterIpi           0x000b  // Any
#define HvCallModifyVtlProtectionMask           0x000c  // Any
#define HvCallEnablePartitionVtl                0x000d  // Any
#define HvCallDisablePartitionVtl               0x000e  // Any
#define HvCallEnableVpVtl                       0x000f  // Any
#define HvCallDisableVpVtl                      0x0010  // Any
#define HvCallVtlCall                           0x0011  // Any
#define HvCallVtlReturn                         0x0012  // Any
#define HvCallFlushVirtualAddressSpaceEx        0x0013  // Any
#define HvCallFlushVirtualAddressListEx         0x0014  // Any
#define HvCallSendSyntheticClusterIpiEx         0x0015  // Any
#define HvCreatePartition                       0x0040  // Any
#define HvInitializePartition                   0x0041  // Parent
#define HvFinalizePartition                     0x0042  // Parent
#define HvDeletePartition                       0x0043  // Parent
#define HvGetPartitionProperty                  0x0044  // Parent/Root
#define HvSetPartitionProperty                  0x0045  // Parent/Root
#define HvGetPartitionId                        0x0046  // Any
#define HvGetNextChildPartition                 0x0047  // Parent
#define HvDepositMemory                         0x0048  // Parent/Root
#define HvWithdrawMemory                        0x0049  // Parent/Root
#define HvGetMemoryBalance                      0x004A  // Parent/Root
#define HvMapGpaPages                           0x004B  // Parent/Root
#define HvUnmapGpaPages                         0x004C  // Parent
#define HvInstallIntercept                      0x004D  // Parent
#define HvCreateVp                              0x004E  // Parent
#define HvDeleteVp                              0x004F  // Parent
#define HvGetVpRegisters                        0x0050  // Any
#define HvSetVpRegisters                        0x0051  // Any
#define HvTranslateVirtualAddress               0x0052  // Any
#define HvReadGpa                               0x0053  // Parent
#define HvWriteGpa                              0x0054  // Parent
#define HvClearVirtualInterrupt                 0x0056  // Parent
#define HvDeletePort                            0x0058  // Parent/Root
#define HvConnectPort                           0x0059  // Parent/Root
#define HvGetPortProperty                       0x005A  // Parent/Root
#define HvDisconnectPort                        0x005B  // Parent/Root
#define HvPostMessage                           0x005C  // Any
#define HvSignalEvent                           0x005D  // Any
#define HvSavePartitionState                    0x005E  // Parent
#define HvRestorePartitionState                 0x005F  // Parent
#define HvInitializeEventLogBufferGroup         0x0060  // Root
#define HvFinalizeEventLogBufferGroup           0x0061  // Root
#define HvCreateEventLogBuffer                  0x0062  // Root
#define HvDeleteEventLogBuffer                  0x0063  // Root
#define HvMapEventLogBuffer                     0x0064  // Root
#define HvUnmapEventLogBuffer                   0x0065  // Root
#define HvSetEventLogGroupSources               0x0066  // Root
#define HvReleaseEventLogBuffer                 0x0067  // Root
#define HvFlushEventLogBuffer                   0x0068  // Root
#define HvPostDebugData                         0x0069  // Any
#define HvRetrieveDebugData                     0x006A  // Any
#define HvResetDebugSession                     0x006B  // Any
#define HvMapStatsPage                          0x006C  // Parent
#define HvUnmapStatsPage                        0x006D  // Parent
#define HvCallMapSparseGpaPages                 0x006E  // Parent/Root
#define HvCallSetSystemProperty                 0x006F  // Root
#define HvCallSetPortProperty                   0x0070  // Parent/Root
#define HvCallAddLogicalProcessor               0x0076  // Root
#define HvCallRemoveLogicalProcessor            0x0077  // Root
#define HvCallQueryNumaDistance                 0x0078  // Root
#define HvCallSetLogicalProcessorProperty       0x0079  // Root
#define HvCallGetLogicalProcessorProperty       0x007A  // Root
#define HvCallGetSystemProperty                 0x007B  // Any
#define HvCallMapDeviceInterrupt                0x007C  // Root
#define HvCallUnmapDeviceInterrupt              0x007D  // Root
#define HvCallRetargetDeviceInterrupt           0x007E  // Any
#define HvCallMapDevicePages                    0x0080  // Root
#define HvCallUnmapDevicePages                  0x0081  // Root
#define HvCallAttachDevice                      0x0082  // Root
#define HvCallDetachDevice                      0x0083  // Root
#define HvCallNotifyStandbyTransition           0x0084  // Root
#define HvCallPrepareForSleep                   0x0085  // Root
#define HvCallPrepareForHibernate               0x0086  // Root
#define HvCallNotifyPartitionEvent              0x0087  // Root
#define HvCallGetLogicalProcessorRegisters      0x0088  // Root
#define HvCallSetLogicalProcessorRegisters      0x0089  // Root
#define HvCallQueryAssociatedLpsforMca          0x008A  // Root
#define HvCallNotifyRingEmpty                   0x008B  // Root
#define HvCallInjectSyntheticMachineCheck       0x008C  // Root
#define HvCallScrubPartition                    0x008D  // Root
#define HvCallCollectLivedump                   0x008E  // Root
#define HvCallDisableHypervisor                 0x008F  // Root
#define HvCallModifySparseGpaPages              0x0090  // Root
#define HvCallRegisterInterceptResult           0x0091  // Root
#define HvCallUnregisterInterceptResult         0x0092  // Root
#define HvCallAssertVirtualInterrupt            0x0094  // Any
#define HvCallCreatePort                        0x0095  // Root
#define HvCallConnectPort                       0x0096  // Root
#define HvCallGetSpaPageList                    0x0097  // Root
#define HvCallStartVirtualProcessor             0x0099  // Any
#define HvCallGetVpIndexFromApicId              0x009A  // Any
#define HvCallFlushGuestPhysicalAddressSpace    0x00AF  // Any
#define HvCallFlushGuestPhysicalAddressList     0x00B0  // Any
